package com.springboot.uav.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.springboot.uav.dto.LoginDto;
import com.springboot.uav.dto.RegisterDto;
import com.springboot.uav.entity.Result;
import com.springboot.uav.entity.User;
import org.springframework.web.multipart.MultipartFile;

/**
 * Created by IntelliJ IDEA.
 * &#064;Author : Zys
 * &#064;create 2024/11/5 14:40
 */

public interface UserService extends IService<User> {
    /**
     *  处理登录业务
     * @param loginDto 要登录的用户
     * @return 返回结果
     */
    public Result login(LoginDto loginDto);

    /**
     * 处理注册业务
     * @param registerDto 要注册的用户
     * @return 返回结果
     */
    //发送验证码
    public Result send(RegisterDto registerDto);

    //获得验证码后注册
    Result register(RegisterDto registerDto);

    /**
     * 更新用户电话号码
     * @param userId 用户ID
     * @param newPhoneNumber 新的电话号码
     * @return 更新是否成功
     */
    boolean updatePhoneNumber(Integer userId, String newPhoneNumber);

    /**
     * 根据用户ID获取电话号码
     * @param userId 用户ID
     * @return 电话号码
     */
    String getPhoneNumber(Integer userId);

    Result updateAvatar(String username, MultipartFile file);

    /**
     *  更新性别
     * @param userId
     * @param sex
     * @return
     */
    boolean updateSex(Integer userId, Integer sex);

    /**
     * 获取性别
     * @param userId
     * @return
     */
    Integer getSexById(Integer userId);

    /**
     * 更新昵称
     * @param userId
     * @param newNickname
     * @return
     */
    boolean updateNickname(Integer userId, String newNickname);

    /**
     * 更新密码
     * @param userId
     * @param oldPassword
     * @param newPassword
     * @return
     */
    boolean updatePassword(Integer userId, String oldPassword, String newPassword);

    String getNickname(Integer userId);

    boolean checkPassword(Integer userId, String password);

}
